2. Compressed graphics

Here's the main code below. Could be used for generic data compression as well.
Just not text.

__________________________________________________________


[044225] 4225 F5          PUSH AF          AF=FF28 BC=0000 DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[044226] 4226 C5          PUSH BC          AF=FF28 BC=0000 DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[044227] 4227 D5          PUSH DE          AF=FF28 BC=0000 DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[044228] 4228 E5          PUSH HL          AF=FF28 BC=0000 DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[044229] 4229 E5          PUSH HL          AF=FF28 BC=0000 DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[04422A] 422a 21 FC FF    LD HL,FFFCh      AF=FF28 BC=0000 DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[04422D] 422d CB DE       SET 3,(HL)       AF=FF28 BC=0000 DE=A090 HL=FFFC IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[04422F] 422f CB 96       RES 2,(HL)       AF=FF28 BC=0000 DE=A090 HL=FFFC IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[044231] 4231 E1          POP HL           AF=FF28 BC=0000 DE=A090 HL=FFFC IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[044232] 4232 CD 3B 00    CALL 003Bh       AF=FF28 BC=0000 DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; Title

[044235] 4235 01 5B 42    LD BC,425Bh      AF=FF28 BC=0000 DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[044238] 4238 11 00 BE    LD DE,BE00h      AF=FF28 BC=425B DE=A090 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[04423B] 423b CD 66 0B    CALL 0B66h       AF=FF28 BC=425B DE=BE00 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

__________________________________________________________


[000B66] 0b66 C5          PUSH BC          AF=FF28 BC=425B DE=BE00 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B67] 0b67 D5          PUSH DE          AF=FF28 BC=425B DE=BE00 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B68] 0b68 E5          PUSH HL          AF=FF28 BC=425B DE=BE00 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B69] 0b69 DD E5       PUSH IX          AF=FF28 BC=425B DE=BE00 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B6B] 0b6b 60          LD H,B           AF=FF28 BC=425B DE=BE00 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B6C] 0b6c 69          LD L,C           AF=FF28 BC=425B DE=BE00 HL=428F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; see below

[000B6D] 0b6d CD B6 0C    CALL 0CB6h       AF=FF28 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000B70] 0b70 29          ADD HL,HL        AF=FF28 BC=425B DE=BE00 HL=15E0 IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B71] 0b71 29          ADD HL,HL        AF=FF00 BC=425B DE=BE00 HL=2BC0 IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B72] 0b72 29          ADD HL,HL        AF=FF10 BC=425B DE=BE00 HL=5780 IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B73] 0b73 7C          LD A,H           AF=FF00 BC=425B DE=BE00 HL=AF00 IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B74] 0b74 DD 62       LD HX,D          AF=AF00 BC=425B DE=BE00 HL=AF00 IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B76] 0b76 DD 6B       LD LX,E          AF=AF00 BC=425B DE=BE00 HL=AF00 IX=BE70 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B78] 0b78 11 20 00    LD DE,0020h      AF=AF00 BC=425B DE=BE00 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; Some type of bitmap conversion (2-bpp + 2-bpp --> GG format)

; $01 --> $04 --> $10 --> $02 --> $08 --> $01

[000B7B] 0b7b DD 4E 04    LD C,(IX+04h)    AF=AF00 BC=425B DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B7E] 0b7e DD 46 01    LD B,(IX+01h)    AF=AF00 BC=4200 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000B81] 0b81 DD 70 04    LD (IX+04h),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B84] 0b84 DD 46 10    LD B,(IX+10h)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B87] 0b87 DD 71 10    LD (IX+10h),C    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B8A] 0b8a DD 4E 02    LD C,(IX+02h)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000B8D] 0b8d DD 70 02    LD (IX+02h),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B90] 0b90 DD 46 08    LD B,(IX+08h)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B93] 0b93 DD 71 08    LD (IX+08h),C    AF=AF00 BC=FF00 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B96] 0b96 DD 70 01    LD (IX+01h),B    AF=AF00 BC=FF00 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; $0C --> $11 --> $06 --> $18 --> $03 --> $0C

[000B99] 0b99 DD 4E 0C    LD C,(IX+0Ch)    AF=AF00 BC=FF00 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000B9C] 0b9c DD 46 03    LD B,(IX+03h)    AF=AF00 BC=FFFF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000B9F] 0b9f DD 70 0C    LD (IX+0Ch),B    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BA2] 0ba2 DD 46 11    LD B,(IX+11h)    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BA5] 0ba5 DD 71 11    LD (IX+11h),C    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BA8] 0ba8 DD 4E 06    LD C,(IX+06h)    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000BAB] 0bab DD 70 06    LD (IX+06h),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BAE] 0bae DD 46 18    LD B,(IX+18h)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BB1] 0bb1 DD 71 18    LD (IX+18h),C    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BB4] 0bb4 DD 70 03    LD (IX+03h),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; $05 --> $14 --> $12 --> $0A --> $09 --> $05

[000BB7] 0bb7 DD 4E 14    LD C,(IX+14h)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BBA] 0bba DD 46 05    LD B,(IX+05h)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000BBD] 0bbd DD 70 14    LD (IX+14h),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BC0] 0bc0 DD 46 12    LD B,(IX+12h)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000BC3] 0bc3 DD 71 12    LD (IX+12h),C    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BC6] 0bc6 DD 4E 0A    LD C,(IX+0Ah)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BC9] 0bc9 DD 70 0A    LD (IX+0Ah),B    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BCC] 0bcc DD 46 09    LD B,(IX+09h)    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000BCF] 0bcf DD 71 09    LD (IX+09h),C    AF=AF00 BC=FFFF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BD2] 0bd2 DD 70 05    LD (IX+05h),B    AF=AF00 BC=FFFF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; $07 --> $1C --> $13 --> $0E --> $19 --> $07

[000BD5] 0bd5 DD 4E 1C    LD C,(IX+1Ch)    AF=AF00 BC=FFFF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BD8] 0bd8 DD 46 07    LD B,(IX+07h)    AF=AF00 BC=FF00 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000BDB] 0bdb DD 70 1C    LD (IX+1Ch),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BDE] 0bde DD 46 13    LD B,(IX+13h)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BE1] 0be1 DD 71 13    LD (IX+13h),C    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BE4] 0be4 DD 4E 0E    LD C,(IX+0Eh)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000BE7] 0be7 DD 70 0E    LD (IX+0Eh),B    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BEA] 0bea DD 46 19    LD B,(IX+19h)    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BED] 0bed DD 71 19    LD (IX+19h),C    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BF0] 0bf0 DD 70 07    LD (IX+07h),B    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; $0B --> $0D --> $15 --> $16 --> $1A --> $0B

[000BF3] 0bf3 DD 4E 0D    LD C,(IX+0Dh)    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BF6] 0bf6 DD 46 0B    LD B,(IX+0Bh)    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000BF9] 0bf9 DD 70 0D    LD (IX+0Dh),B    AF=AF00 BC=FFFF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BFC] 0bfc DD 46 15    LD B,(IX+15h)    AF=AF00 BC=FFFF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000BFF] 0bff DD 71 15    LD (IX+15h),C    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C02] 0c02 DD 4E 16    LD C,(IX+16h)    AF=AF00 BC=00FF DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000C05] 0c05 DD 70 16    LD (IX+16h),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C08] 0c08 DD 46 1A    LD B,(IX+1Ah)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C0B] 0c0b DD 71 1A    LD (IX+1Ah),C    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C0E] 0c0e DD 70 0B    LD (IX+0Bh),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; $0F --> $1D --> $17 --> $1E --> $1B --> $0F

[000C11] 0c11 DD 4E 1D    LD C,(IX+1Dh)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C14] 0c14 DD 46 0F    LD B,(IX+0Fh)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000C17] 0c17 DD 70 1D    LD (IX+1Dh),B    AF=AF00 BC=FF00 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C1A] 0c1a DD 46 17    LD B,(IX+17h)    AF=AF00 BC=FF00 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C1D] 0c1d DD 71 17    LD (IX+17h),C    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C20] 0c20 DD 4E 1E    LD C,(IX+1Eh)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000C23] 0c23 DD 70 1E    LD (IX+1Eh),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C26] 0c26 DD 46 1B    LD B,(IX+1Bh)    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C29] 0c29 DD 71 1B    LD (IX+1Bh),C    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C2C] 0c2c DD 70 0F    LD (IX+0Fh),B    AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

; One loop done

[000C2F] 0c2f DD 19       ADD IX,DE        AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE00 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C31] 0c31 25          DEC H            AF=AF00 BC=0000 DE=0020 HL=AF00 IX=BE20 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C32] 0c32 C2 7B 0B    JP NZ,0B7Bh      AF=AFAA BC=0000 DE=0020 HL=AE00 IX=BE20 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

[000C35] 0c35 DD E1       POP IX           AF=AF42 BC=0800 DE=0020 HL=0000 IX=D3E0 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C37] 0c37 E1          POP HL           AF=AF42 BC=0800 DE=0020 HL=0000 IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C38] 0c38 D1          POP DE           AF=AF42 BC=0800 DE=0020 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C39] 0c39 C1          POP BC           AF=AF42 BC=0800 DE=BE00 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000C3A] 0c3a C9          RET              AF=AF42 BC=425B DE=BE00 HL=A08F IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]

__________________________________________________________


; start of data decoder

[000CB6] 0cb6 F5          PUSH AF          AF=FF28 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000CB7] 0cb7 08          EX AF,AF'        AF=FF28 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000CB8] 0cb8 F5          PUSH AF          AF=8084 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CB9] 0cb9 C5          PUSH BC          AF=8084 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CBA] 0cba D5          PUSH DE          AF=8084 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CBB] 0cbb DD E5       PUSH IX          AF=8084 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]

; 2-byte parameter = # times to repeat

[000CBD] 0cbd 7E          LD A,(HL)        AF=8084 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CBE] 0cbe 23          INC HL           AF=0184 BC=425B DE=BE00 HL=425B IX=C070 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CBF] 0cbf DD 6F       LD LX,A          AF=0184 BC=425B DE=BE00 HL=425C IX=C070 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CC1] 0cc1 3D          DEC A            AF=0184 BC=425B DE=BE00 HL=425C IX=C001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CC2] 0cc2 FE 04       CP 04h           AF=0042 BC=425B DE=BE00 HL=425C IX=C001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CC4] 0cc4 D2 4D 0D    JP NC,0D4Dh      AF=00BB BC=425B DE=BE00 HL=425C IX=C001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]

[000CC7] 0cc7 7E          LD A,(HL)        AF=00BB BC=425B DE=BE00 HL=425C IX=C001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CC8] 0cc8 23          INC HL           AF=00BB BC=425B DE=BE00 HL=425C IX=C001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CC9] 0cc9 DD 67       LD HX,A          AF=00BB BC=425B DE=BE00 HL=425D IX=C001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CCB] 0ccb B7          OR A             AF=00BB BC=425B DE=BE00 HL=425D IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CCC] 0ccc C2 4D 0D    JP NZ,0D4Dh      AF=0044 BC=425B DE=BE00 HL=425D IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CCF] 0ccf D5          PUSH DE          AF=0044 BC=425B DE=BE00 HL=425D IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]


; Algorithm #1 = LZSS
;
; IX <= $0003

; Use full 8-bits of byte, bit 0 is the data start
;
; 1 --> copy raw byte to destination
; 0 --> LZ

[000CD0] 0cd0 7E          LD A,(HL)        AF=0044 BC=425B DE=BE00 HL=425D IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CD1] 0cd1 23          INC HL           AF=C544 BC=425B DE=BE00 HL=425D IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]

[000CD2] 0cd2 37          SCF              AF=C544 BC=425B DE=BE00 HL=425E IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CD3] 0cd3 1F          RRA              AF=C545 BC=425B DE=BE00 HL=425E IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CD4] 0cd4 30 3D       JR NC,0D13h      AF=E265 BC=425B DE=BE00 HL=425E IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CD6] 0cd6 ED A0       LDI              AF=E265 BC=425B DE=BE00 HL=425E IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]

[000CD8] 0cd8 CB 3F       SRL A            AF=E265 BC=425A DE=BE01 HL=425F IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CDA] 0cda 28 F4       JR Z,0CD0h       AF=7124 BC=425A DE=BE01 HL=425F IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CDC] 0cdc 30 35       JR NC,0D13h      AF=7124 BC=425A DE=BE01 HL=425F IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]
[000CDE] 0cde ED A0       LDI              AF=3829 BC=FFFE DE=BE08 HL=4261 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]

[000CE0] 0ce0 CB 3F       SRL A            AF=3825 BC=FFFD DE=BE09 HL=4262 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CE2] 0ce2 28 EC       JR Z,0CD0h       AF=1C08 BC=FFFD DE=BE09 HL=4262 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CE4] 0ce4 30 2D       JR NC,0D13h      AF=1C08 BC=FFFD DE=BE09 HL=4262 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CE6] 0ce6 ED A0       LDI              AF=0101 BC=FFFD DE=BE21 HL=4269 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]

[000CE8] 0ce8 CB 3F       SRL A            AF=010D BC=FFFC DE=BE22 HL=426A IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CEA] 0cea 28 E4       JR Z,0CD0h       AF=0045 BC=FFFC DE=BE22 HL=426A IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CEC] 0cec 30 25       JR NC,0D13h      AF=1B0D BC=FFF9 DE=BE25 HL=426E IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CEE] 0cee ED A0       LDI              AF=1B0D BC=FFF9 DE=BE25 HL=426E IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]

[000CF0] 0cf0 CB 3F       SRL A            AF=1B2D BC=FFF8 DE=BE26 HL=426F IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CF2] 0cf2 28 DC       JR Z,0CD0h       AF=0D09 BC=FFF8 DE=BE26 HL=426F IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CF4] 0cf4 30 1D       JR NC,0D13h      AF=0D09 BC=FFF8 DE=BE26 HL=426F IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CF6] 0cf6 ED A0       LDI              AF=0D09 BC=FFF8 DE=BE26 HL=426F IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]

[000CF8] 0cf8 CB 3F       SRL A            AF=0D0D BC=FFF7 DE=BE27 HL=4270 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CFA] 0cfa 28 D4       JR Z,0CD0h       AF=0605 BC=FFF7 DE=BE27 HL=4270 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CFC] 0cfc 30 15       JR NC,0D13h      AF=0605 BC=FFF7 DE=BE27 HL=4270 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000CFE] 0cfe ED A0       LDI              AF=0605 BC=FFF7 DE=BE27 HL=4270 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]

[000D00] 0d00 CB 3F       SRL A            AF=0605 BC=FFF6 DE=BE28 HL=4271 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000D02] 0d02 28 CC       JR Z,0CD0h       AF=0304 BC=FFF6 DE=BE28 HL=4271 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000D04] 0d04 30 0D       JR NC,0D13h      AF=0304 BC=FFF6 DE=BE28 HL=4271 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000D06] 0d06 ED A0       LDI              AF=0305 BC=FFF7 DE=BE37 HL=427B IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]

[000D08] 0d08 CB 3F       SRL A            AF=032D BC=FFF6 DE=BE38 HL=427C IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000D0A] 0d0a 28 C4       JR Z,0CD0h       AF=0101 BC=FFF6 DE=BE38 HL=427C IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000D0C] 0d0c 30 05       JR NC,0D13h      AF=0101 BC=FFF6 DE=BE38 HL=427C IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000D0E] 0d0e ED A0       LDI              AF=0101 BC=FFF6 DE=BE38 HL=427C IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]
[000D10] 0d10 C3 D0 0C    JP 0CD0h         AF=0125 BC=FFF5 DE=BE39 HL=427D IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]

;-----------------------------------------------------------

; Load two parameters
;
; A = 8-bit delta
; B = lower 5-bits --> window size (1..32)
; B = high  3-bits --> extra 3-bit delta

[000D13] 0d13 08          EX AF,AF'        AF=7124 BC=425A DE=BE01 HL=425F IX=0001 IY=FF07 AF'=FF28   P0=00000 P1=44000 P2=00000 [SRAM]

[000D14] 0d14 7E          LD A,(HL)        AF=FF28 BC=425A DE=BE01 HL=425F IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D15] 0d15 23          INC HL           AF=FF28 BC=425A DE=BE01 HL=425F IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D16] 0d16 46          LD B,(HL)        AF=FF28 BC=425A DE=BE01 HL=4260 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D17] 0d17 23          INC HL           AF=FF28 BC=E45A DE=BE01 HL=4260 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]

; Exit condition ($0000)

[000D18] 0d18 E5          PUSH HL          AF=FF28 BC=E45A DE=BE01 HL=4261 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D19] 0d19 6F          LD L,A           AF=FF28 BC=E45A DE=BE01 HL=4261 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D1A] 0d1a B0          OR B             AF=FF28 BC=E45A DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D1B] 0d1b 28 1A       JR Z,0D37h       AF=FFAC BC=E45A DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]

; C --> window size to copy

[000D1D] 0d1d 78          LD A,B           AF=FFAC BC=E45A DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D1E] 0d1e E6 1F       AND 1Fh          AF=E4AC BC=E45A DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D20] 0d20 3C          INC A            AF=0410 BC=E45A DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D21] 0d21 4F          LD C,A           AF=0500 BC=E45A DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]

; HL --> delta window pointer

[000D22] 0d22 78          LD A,B           AF=0500 BC=E405 DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D23] 0d23 07          RLCA             AF=E400 BC=E405 DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D24] 0d24 07          RLCA             AF=C909 BC=E405 DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D25] 0d25 07          RLCA             AF=9301 BC=E405 DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D26] 0d26 F6 F8       OR F8h           AF=2721 BC=E405 DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D28] 0d28 67          LD H,A           AF=FFAC BC=E405 DE=BE01 HL=42FF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D29] 0d29 19          ADD HL,DE        AF=FFAC BC=E405 DE=BE01 HL=FFFF IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]

; LZ copy

[000D2A] 0d2a 06 00       LD B,00h         AF=FF95 BC=E405 DE=BE01 HL=BE00 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D2C] 0d2c ED B0       LDIR             AF=FF95 BC=0005 DE=BE01 HL=BE00 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]

; LZSS has overhead of two bytes so 'total length >= 3'

[000D2E] 0d2e ED A0       LDI              AF=FFA9 BC=0000 DE=BE06 HL=BE05 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D30] 0d30 ED A0       LDI              AF=FFAD BC=FFFF DE=BE07 HL=BE06 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]

[000D32] 0d32 E1          POP HL           AF=FFAD BC=FFFE DE=BE08 HL=BE07 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D33] 0d33 08          EX AF,AF'        AF=FFAD BC=FFFE DE=BE08 HL=4261 IX=0001 IY=FF07 AF'=7124   P0=00000 P1=44000 P2=00000 [SRAM]
[000D34] 0d34 C3 D8 0C    JP 0CD8h         AF=7124 BC=FFFE DE=BE08 HL=4261 IX=0001 IY=FF07 AF'=FFAD   P0=00000 P1=44000 P2=00000 [SRAM]

;-----------------------------------------------------------

; Check that 'IX' is zero

[000D37] 0d37 DD 2B       DEC IX           AF=0044 BC=00FC DE=D3E0 HL=4F00 IX=0001 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D39] 0d39 DD 7C       LD A,HX          AF=0044 BC=00FC DE=D3E0 HL=4F00 IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D3B] 0d3b DD B5       OR LX            AF=0044 BC=00FC DE=D3E0 HL=4F00 IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D3D] 0d3d 20 DE       JR NZ,0D1Dh      AF=0044 BC=00FC DE=D3E0 HL=4F00 IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]

[000D3F] 0d3f E1          POP HL           AF=0044 BC=00FC DE=D3E0 HL=4F00 IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D40] 0d40 EB          EX DE,HL         AF=0044 BC=00FC DE=D3E0 HL=4F9E IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D41] 0d41 D1          POP DE           AF=0044 BC=00FC DE=4F9E HL=D3E0 IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D42] 0d42 B7          OR A             AF=0044 BC=00FC DE=BE00 HL=D3E0 IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D43] 0d43 ED 52       SBC HL,DE        AF=0044 BC=00FC DE=BE00 HL=D3E0 IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D45] 0d45 DD E1       POP IX           AF=0012 BC=00FC DE=BE00 HL=15E0 IX=0000 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D47] 0d47 D1          POP DE           AF=0012 BC=00FC DE=BE00 HL=15E0 IX=C070 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D48] 0d48 C1          POP BC           AF=0012 BC=00FC DE=BE00 HL=15E0 IX=C070 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D49] 0d49 F1          POP AF           AF=0012 BC=425B DE=BE00 HL=15E0 IX=C070 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D4A] 0d4a 08          EX AF,AF'        AF=8084 BC=425B DE=BE00 HL=15E0 IX=C070 IY=FF07 AF'=4000   P0=00000 P1=44000 P2=00000 [SRAM]
[000D4B] 0d4b F1          POP AF           AF=4000 BC=425B DE=BE00 HL=15E0 IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]
[000D4C] 0d4c C9          RET              AF=FF28 BC=425B DE=BE00 HL=15E0 IX=C070 IY=FF07 AF'=8084   P0=00000 P1=44000 P2=00000 [SRAM]


For more information on LZ, consult:

Hacking Data Compression  Lesson 7  Ziv and Lempel
By Andy McFadden
GEnie A2Pro Apple II University - Copyright (C) 1992 GEnie


It's a standard data compression algorithm that you will consistently see from 1990+.
Especially in console software.

The other half is some custom bitmap -> GG converter. Nothing too special other than
the odd format. But we can just imitate it.


Do remember the memory map crossing:
$BE00-BFFF = $3E00-3FFF SRAM.
$C000-DFFF = $0000-1FFF RAM.

So at $4425B-44F9D = title screen bitmap ($D43 bytes)
Our encoder uses lookahead LZ optimisation = $D1B bytes.

Lookahead checks to see if skipping 1 byte would result in a better compression
ratio due to a larger LZ window.

__________________________________________________________________


; All 4 chapter titles stored here (compressed)
;
; $46FD1-47A14 = $A44 bytes

[046F30] 6f30 01 D1 6F    LD BC,6FD1h      AF=FF82 BC=00BE DE=7880 HL=0000 SP=DEC9 IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F33] 6f33 11 00 AC    LD DE,AC00h      AF=FF82 BC=6FD1 DE=7880 HL=0000 SP=DEC9 IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F36] 6f36 CD 66 0B    CALL 0B66h       AF=FF82 BC=6FD1 DE=AC00 HL=0000 SP=DEC9 IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]

; Copy from RAM to VRAM ($10A0 amount)

[046F39] 6f39 21 00 AC    LD HL,AC00h      AF=8542 BC=6FD1 DE=AC00 HL=0000 SP=DEC9 IX=868A IY=DEF2 OVB   P0=00000 P1=44000 P2=00000 [SRAM]
[046F3C] 6f3c 11 00 54    LD DE,5400h      AF=8542 BC=6FD1 DE=AC00 HL=AC00 SP=DEC9 IX=868A IY=DEF2 OVB   P0=00000 P1=44000 P2=00000 [SRAM]
[046F3F] 6f3f 01 A0 10    LD BC,10A0h      AF=8542 BC=6FD1 DE=5400 HL=AC00 SP=DEC9 IX=868A IY=DEF2 OVB   P0=00000 P1=44000 P2=00000 [SRAM]
[046F42] 6f42 CD 50 03    CALL 0350h       AF=8542 BC=10A0 DE=5400 HL=AC00 SP=DEC9 IX=868A IY=DEF2 OVB   P0=00000 P1=44000 P2=00000 [SRAM]

[046F45] 6f45 21 3C 00    LD HL,003Ch      AF=FF43 BC=82BE DE=5400 HL=BCA0 SP=DEC9 IX=868A IY=DEF2 OVB   P0=00000 P1=44000 P2=00000 [SRAM]
[046F48] 6f48 CD E2 09    CALL 09E2h       AF=FF43 BC=82BE DE=5400 HL=003C SP=DEC9 IX=868A IY=DEF2 OVB   P0=00000 P1=44000 P2=00000 [SRAM]
[046F4B] 6f4b F1          POP AF           AF=FF43 BC=82BE DE=5400 HL=003C SP=DEC9 IX=868A IY=DEF2 OVB   P0=00000 P1=44000 P2=00000 [SRAM]

; A = chapter title ($80-$83)
;
; Seems to be a NT-offset function, HL has result

[046F4C] 6f4c F5          PUSH AF          AF=8100 BC=82BE DE=5400 HL=003C SP=DECB IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]
[046F4D] 6f4d E6 07       AND 07h          AF=8100 BC=82BE DE=5400 HL=003C SP=DEC9 IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]
[046F4F] 6f4f 21 E4 00    LD HL,00E4h      AF=0110 BC=82BE DE=5400 HL=003C SP=DEC9 IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]
[046F52] 6f52 CD 74 05    CALL 0574h       AF=0110 BC=82BE DE=5400 HL=00E4 SP=DEC9 IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]

; #1 = $0000
; #2 = $00E4
; #3 = $01C8
; #4 = $02AC
;
; Nametable data (raw, unencoded)
; $47A16-47DD9, rest of page is empty (currently reserved for script space)
;
; DE = xy, BC = width, height

[046F55] 6f55 11 16 7A    LD DE,7A16h      AF=0100 BC=82BE DE=5400 HL=00E4 SP=DEC9 IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]
[046F58] 6f58 19          ADD HL,DE        AF=0100 BC=82BE DE=7A16 HL=00E4 SP=DEC9 IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]
[046F59] 6f59 11 04 00    LD DE,0004h      AF=0100 BC=82BE DE=7A16 HL=7AFA SP=DEC9 IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]
[046F5C] 6f5c 01 06 13    LD BC,1306h      AF=0100 BC=82BE DE=0004 HL=7AFA SP=DEC9 IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]
[046F5F] 6f5f CD 98 13    CALL 1398h       AF=0100 BC=1306 DE=0004 HL=7AFA SP=DEC9 IX=8692 IY=DEEE    P0=00000 P1=44000 P2=00000 [SRAM]

; Chapter end bitmap NT

[046F62] 6f62 21 2C 01    LD HL,012Ch      AF=0044 BC=1306 DE=0004 HL=7A16 SP=DEC9 IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F65] 6f65 F1          POP AF           AF=0044 BC=1306 DE=0004 HL=012C SP=DEC9 IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F66] 6f66 CB 7F       BIT 7,A          AF=8000 BC=1306 DE=0004 HL=012C SP=DECB IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F68] 6f68 28 13       JR Z,6F7Dh       AF=8090 BC=1306 DE=0004 HL=012C SP=DECB IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]

[046F6A] 6f6a 21 A6 7D    LD HL,7DA6h      AF=8090 BC=1306 DE=0004 HL=012C SP=DECB IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F6D] 6f6d 11 0B 07    LD DE,070Bh      AF=8090 BC=1306 DE=0004 HL=7DA6 SP=DECB IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F70] 6f70 01 02 05    LD BC,0502h      AF=8090 BC=1306 DE=070B HL=7DA6 SP=DECB IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F73] 6f73 CD 98 13    CALL 1398h       AF=8090 BC=0502 DE=070B HL=7DA6 SP=DECB IX=8680 IY=DEF6    P0=00000 P1=44000 P2=00000 [SRAM]
[046F76] 6f76 F7          RST 30           AF=8290 BC=0502 DE=070B HL=7DA6 SP=DECB IX=868D IY=DEF0 OB   P0=00000 P1=44000 P2=00000 [SRAM]
[046F78] 6f78 F7          RST 30           AF=8290 BC=0502 DE=070B HL=7DA6 SP=DECB IX=868D IY=DEF0 OB   P0=00000 P1=44000 P2=00000 [SRAM]
[046F7A] 6f7a 21 1C 02    LD HL,021Ch      AF=8290 BC=0502 DE=070B HL=7DA6 SP=DECB IX=868D IY=DEF0 B    P0=00000 P1=44000 P2=00000 [SRAM]

; CRAM palette

[046F7D] 6f7d E5          PUSH HL          AF=8290 BC=0502 DE=070B HL=021C SP=DECB IX=868D IY=DEF0 B    P0=00000 P1=44000 P2=00000 [SRAM]
[046F7E] 6f7e 21 BA 7D    LD HL,7DBAh      AF=8290 BC=0502 DE=070B HL=021C SP=DEC9 IX=868D IY=DEF0 B    P0=00000 P1=44000 P2=00000 [SRAM]
[046F81] 6f81 11 04 D5    LD DE,D504h      AF=8290 BC=0502 DE=070B HL=7DBA SP=DEC9 IX=868D IY=DEF0 B    P0=00000 P1=44000 P2=00000 [SRAM]
[046F84] 6f84 01 20 00    LD BC,0020h      AF=8290 BC=0502 DE=D504 HL=7DBA SP=DEC9 IX=868D IY=DEF0 B    P0=00000 P1=44000 P2=00000 [SRAM]
[046F87] 6f87 ED B0       LDIR             AF=8290 BC=0020 DE=D504 HL=7DBA SP=DEC9 IX=868D IY=DEF0 B    P0=00000 P1=44000 P2=00000 [SRAM]


The data at $46FD1 is pretty straightforward. 'x' top row tiles followed by 'y' bottom
row tiles. Just a matter of re-arranging them in a tile editor of your choice.

See chap1-nt.txt for a sample of how the tile data lines up.